Stripe SDKで「支払い済みのinvoice情報」から「支払い情報(領収書PDFのURL)」を取得する
StripeのSDKで「支払い済みのinvoice情報」を取得すると、請求書PDFなどの情報は得られますが、支払い情報(領収書URLなど)は得られません。 これは、支払い情報として別途管理されているためです。 本記事では、invoice情報から支払い情報の取得を試してみます。
おすすめの方
- Stripe SDKで「支払い済みのinvoice情報」から「支払い情報(領収書PDFのURL)」を取得したい方
重要
- 支払い情報は、払い戻しなどによって適宜変化します。最新情報は、Stripeから都度取得してください。
- 領収書PDFのURLは、Stripe公式が案内している方法ではありません。PDF取得ができない場合があったり、突然利用不可になるリスクがあります。
まずは、invoice情報を確認する
invoice情報にあるPDFのURLは、「invoice_pdf」だけです。
{ "object": "invoice", "hosted_invoice_url": "https://invoice.stripe.com/i/xxx/yyy?s=ap", "invoice_pdf": "https://pay.stripe.com/invoice/xxx/yyy/pdf?s=ap", "charge": "ch_zzz", ... }
そのため、支払い情報は、「charge」の値を利用して取得します。
invoice情報を取得してから、charge情報を取得する
invoice_idでinvoice情報を取得し、得られたcharge_idでcharge情報を取得します。
import stripe stripe.api_key = "sk_test123" def main(): invoice = stripe.Invoice.retrieve("in_aaa") charge_id = invoice["charge"] print(invoice["invoice_pdf"]) charge = stripe.Charge.retrieve(charge_id) print(charge["receipt_url"]) if __name__ == "__main__": main()
charge情報を確認する
charge情報には、「receipt_url」があります。
{ "object": "charge", "receipt_url": "https://pay.stripe.com/receipts/invoices/zzz?s=ap", ... }
この「receipt_url」にアクセスすると、invoiceの「hosted_invoice_url」と似たような画面が表示されます。
領収書PDFのURLを得る
「receipt_url」に「/pdf」を追加すると、領収書PDFが得られます。(invoiceの「invoice_pdf」を真似た)
https://pay.stripe.com/receipts/invoices/zzz/pdf?s=ap
ただし、この領収書PDFのURLは、Stripe公式が案内している方法ではありません。PDF取得ができない場合があったり、突然利用不可になるリスクがあります。
また、これらのURLは、一定期間後に期限切れになるため恒久保存できません。